CXXFLAGS=-g -Wall

EXE=humbug
CSRCS=humbug.cc lib.cc parsetree.cc
COBJS:=$(CSRCS:%.cc=%.o)
OBJS:=$(COBJS) cparser.tab.o clexer.o

all: $(EXE)

$(EXE): $(OBJS)
	$(CXX) $(CFLAGS) -o $(EXE) $(OBJS)

cparser.tab.c cparser.tab.h: cparser.y
	bison -d -v cparser.y

cparser.tab.o: cparser.tab.c
	$(CXX) $(CXXFLAGS) -c $<

clexer.c: clexer.l cparser.tab.h
	flex -oclexer.c clexer.l

clexer.o: clexer.c
	$(CXX) $(CXXFLAGS) -c $<

depend:
	$(CXX) $(CXXFLAGS) -MM $(CSRCS) >.depend

clean:
	rm -f $(EXE) $(OBJS) cparser.tab.c cparser.tab.h cparser.output clexer.c

count:
	wc $(CSRCS) cparser.y clexer.l Makefile

-include .depend
